package com.bikes.mileagetracker.entity;

import com.bikes.mileagetracker.orm.Column;
import com.bikes.mileagetracker.orm.DbType;
import com.bikes.mileagetracker.orm.Entity;
import com.bikes.mileagetracker.orm.Table;

@Table("T_TRACKING")
public class TrackingEntity implements Entity<String> {

    @Column(value="id", type= DbType.TEXT)
    private String id;

    @Column(value="userId", type= DbType.TEXT)
    private String userId;

    @Column(value="startTm", type= DbType.INTEGER)
    private long startTm;

    @Column(value="endTm", type= DbType.INTEGER)
    private long endTm;

    @Column(value="startDate", type= DbType.TEXT)
    private String startDate;

    @Column(value="startTime", type= DbType.TEXT)
    private String startTime;

    @Column(value="endDate", type= DbType.TEXT)
    private String endDate;

    @Column(value="endTime", type= DbType.TEXT)
    private String endTime;

    @Column(value="startAddress", type= DbType.TEXT)
    private String startAddress;

    @Column(value="endAddress", type= DbType.TEXT)
    private String endAddress;

    @Column(value="startLatitude", type= DbType.REAL)
    private double startLatitude;

    @Column(value="startLongitude", type= DbType.REAL)
    private double startLongitude;

    @Column(value="endLatitude", type= DbType.REAL)
    private double endLatitude;

    @Column(value="endLongitude", type= DbType.REAL)
    private double endLongitude;

    @Column(value="miles", type= DbType.INTEGER)
    private long miles;

    @Column(value="updateTm", type= DbType.INTEGER)
    private long updateTm = System.currentTimeMillis();

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void setId(String id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public long getStartTm() {
        return startTm;
    }

    public void setStartTm(long startTm) {
        this.startTm = startTm;
    }

    public long getEndTm() {
        return endTm;
    }

    public void setEndTm(long endTm) {
        this.endTm = endTm;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getStartAddress() {
        return startAddress;
    }

    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress;
    }

    public String getEndAddress() {
        return endAddress;
    }

    public void setEndAddress(String endAddress) {
        this.endAddress = endAddress;
    }

    public double getStartLatitude() {
        return startLatitude;
    }

    public void setStartLatitude(double startLatitude) {
        this.startLatitude = startLatitude;
    }

    public double getStartLongitude() {
        return startLongitude;
    }

    public void setStartLongitude(double startLongitude) {
        this.startLongitude = startLongitude;
    }

    public double getEndLatitude() {
        return endLatitude;
    }

    public void setEndLatitude(double endLatitude) {
        this.endLatitude = endLatitude;
    }

    public double getEndLongitude() {
        return endLongitude;
    }

    public void setEndLongitude(double endLongitude) {
        this.endLongitude = endLongitude;
    }

    public long getMiles() {
        return miles;
    }

    public void setMiles(long miles) {
        this.miles = miles;
    }

    public long getUpdateTm() {
        return updateTm;
    }

    public void setUpdateTm(long updateTm) {
        this.updateTm = updateTm;
    }
}
